Many organizations store large amounts of security-sensitive information in relational databases. This type of data is usually subjected to very thorough security measures including physical security, access control, perimeter security restrictions, and—in some cases—encryption. Since access to database data is essential to the job function of many employees in the enterprise, there are many possible points of possible theft or accidental distribution of this information. Theft or benign inadvertent disclosure of information represents a significant business risk both in terms of the value of the intellectual property as well as the legal liabilities related to regulatory compliance.
Relational Database Systems
Relational database systems are useful for a huge range of applications. Relational structures hold data in a fashion that presents naturally intuitive ways to query the data, and has the added advantage of hiding the details of the underlying disk storage system from the user. The typical applications for database systems involve the storage and retrieval of a large number of smaller pieces of data that can be naturally formatted into a table structure. Relational databases have high utility because the types of queries that most people care about can be optimized using the well-known index structures outlined below.
The queries requested of relational database systems use a naturally intuitive predicate logic called Structured Query Language (SQL) that allows the user to succinctly request the tabular data that she/he may be looking for. Database tables almost always come equipped with an index that makes queries based on SQL more efficient. These indices are stored in memory using a data structure called a B-tree. The salient characteristics of B-trees most relevant to the current discussion are as follows:
B-trees are an abstract data structure based on the binary tree;
B-trees must contain some copies of the data that they index; and
B-trees are most efficient using the query examples outlined below.
Here are a number of query examples:
Exact match queries of the form A=v, where:                A refers to the column or “attribute” of a given database table        v refers to a specific attribute value        e.g., SELECT*FROM CUSTOMERS WHERE Income=30,000        
Range queries of the form v1<A<v2, where:                A refers to the column or “attribute” of a given database table        e.g., SELECT*FROM CUSTOMERS WHERE 30<Income<40        
Prefix queries of the form A MATCHES s*, where:                “s” refers to a specific string value        “s*” is a regular expression        e.g., Last_Name MATCHES “Smith*”        
There are a number of references to original works in the field of database systems. The first is the seminal work on relational databases by E. F. Codd., “A Relational Model of Data for Large Shared Data Banks”, Communications of the ACM, 13(6): 377-387, 1970.
The second reference is one of the first published works on the “B-Tree” data structure that is the fundamental data structure that enables efficient queries of the type outlined above. See Rudolf Bayer and Edward M. McCreight, “Organization and Maintenance of Large Ordered Indices”, Record of the 1970 ACM SIGFIDET Workshop on Data Description and Access, Nov. 15-16, 1970, Rice University, Houston, Tex., USA (Second Edition with an Appendix), pages 107-141, ACM, 1970.
Information Retrieval Systems
Information retrieval is a broad field that deals with the storage and retrieval of textual data found in documents. These systems are different from those of database systems chiefly in their focus on standard documents instead of tabular data. Early examples of this system were developed as part of the SMART system at Cornell. Today, the best-known information retrieval applications are web-based search engines like Google, Inktomi, and AltaVista. The typical way to use these systems is to find a reference to a document that is part of a larger set of digital documents. The user experience for these applications usually consists of a series of queries interleaved with browsing of the results. Results of the queries are presented in order of descending relevance, and the user is able to refine the queries after further browsing. As with relational databases, the huge popularity of these systems is due to the ability of the underlying indices to deliver quick responses to the types of queries that people find most useful.
Most of these systems are based on indices that are derived from so-called “concordances” that are built up from the collection of documents indexed. These concordances contain a data structure that lists, for each word, the location of each occurrence of that word in each of the documents. Such data structures allow quick lookups of all documents that contain a particular term. For user queries that ask for all documents that contain a collection of terms, the index is structured so that it represents a large number of vectors in Euclidean vector space of high dimension. The user's list of query terms is then also re-interpreted as a vector in this space. The query is run by finding which vectors in the document space are nearest to the query vector. This last approach has a variety of different optimizations applied to it for accuracy and speed, and is called the “cosine metric”.
As mentioned above, the typical user interaction with these sorts of systems is an iterative cycle of querying, browsing, refining, and back to querying again. Query results are usually large numbers of documents that are ranked in order of relevance, and the false positive rate can be very high. Here are some classic examples of queries.                Boolean queries like:        a) all documents that contain the terms “database” and “indices”        b) all documents that contain “database” or “indices” but not “Sybase”Link-based queries like:        a) all documents that are linked to by documents that contain the term “dog”        b) the most “popular” (i.e. linked to) document that contains the word “dog”        
One of the first significant implementation projects of information retrieval systems is the SMART system at Cornell. This system contains many of the essential components of information retrieval systems still in use today: C. Buckley, “Implementation of the SMART Information Retrieval System”, Technical Report TR85-686, Cornell University, 1985
The WAIS project was an early application of the massively parallel super-computer produced by Thinking Machines Inc. This is one of the first fielded information retrieval systems made available over the Internet. This primary reference source for this work is by Brewster Kahle and Art Medlar: “An Information System for Corporate Users: Wide Area Information Servers.” Technical Report TMC-199, Thinking Machines, Inc., April 1991, version 3.19.
Among the many contemporary commercial vendors of Internet search services is Google. Google's real break-through in search accuracy is its ability to harvest data from both the text of the documents that are indexed as well as the hyper-link structure. See Sergey Brin, Lawrence Page, “The Anatomy of a Large-Scale Hypertextual Web Search Engine”, http://dbpubs.stanford.edu:8090/pub/1998-8
File Shingling Systems
The growth of the Internet and affordable means of copying and distributing digital documents spurred research interest in technologies that can help detect illegal or inappropriate copies of documents. The primary application for this work was to detect the violation of copyright law, and to detect plagiarism. There is also significant interest in this problem as it relates to spam-email (AKA unsolicited commercial email) detection and automatic elimination. The technical term applied to describe most of these techniques is “file shingling” in which adjacent sequences of document fragments are reduced to “shingles” by hash codes, and then stored in a lookup table in the same sequence as they are found in the document.
File shingling provides a very quick way to look for similarity between two documents. In order to provide protection to a specific document (e.g., a text file) the document is shingled by hashing the document sentence-by-sentence and storing these hashed sentences in a table for quick lookup. In order to test a new document to see if it contains fragments of copyrighted content, the same hash function is applied to each fragment of the test message to see if the fragments appear in a similar order as they do in the copyrighted content. The technique is quick because the time required to lookup an individual fragment can be very fast.
The typical user interaction with a file shingling system is passive instead of active. File shingling systems are usually set up to process documents automatically and deliver the query results to a user asynchronously. A typical file shingling application might be spam prevention where a set of messages is used to create an index of restricted content that an organization does not want delivered to its email systems. In this scenario, the “query” is just the automatic processing of email messages and appropriate automatic routing.
With respect to document equivalency queries, for each test document t, find all documents d in our collection of indexed documents that have the same contents as t. For the case of spam detection, the set d could be all of the known active spam messages, and the document t could be an incoming email message.
With respect to cut-and-paste detection queries, for each test document t, find all documents d in our collection of indexed documents in which some fragment of d occurs in t. For the case of plagiarism detection, the set d could be all of the previously submitted essays for a particular class, and the document t could be a new paper written by a student who is suspected of plagiarism.
The main published research projects in file shingling are called KOALA, COPS, and SCAM. They all use variants on the basic file shingling approach described above with variants that optimize performance and accuracy. For information on KOALA, see N. Heintze, “Scalable Document Fingerprinting”, Proceedings of Second USENIX Workshop on Electronic Commerce, November 1996. http://www-2.cs.cmu.edu/afs/cs/user/nch/wwwlkoala/main.html. For information on COPS, see S. Brin, J. Davis, and H. Garcia-Molina, “Copy Detection Mechanisms for Digital Documents”, Proceedings of the ACM SIGMOD Annual Conference, May 1995. For information on SCAM, see N. Shivakumar and H. Garcia-Molina, “SCAM: A Copy Detection Mechanism for Digital Documents”, Proceedings of 2nd International Conference in Theory and Practice of Digital Libraries (DL'95), June 1995, http://www-db.stanford.edu/˜shiva/SCAM/scamInfo.html, and also see (by N. Shivakumar and H. Garcia-Molina), “Building a Scalable and Accurate Copy Detection Mechanism”, Proceedings of 1st ACM Conference on Digital Libraries (DL'96) March 1996, http://www-db.stanford.edu/pub/papers/performance.ps.
Internet Content Filtering Systems
A variety of commercial applications, referred to as content filtering systems, implement protection measures. There are two major types of applications in this category: web site restriction/monitoring software, and email content control. In both cases, the main algorithm currently in use is pattern matching against a set of regular expressions for a set collection of text fragments that would indicate data misuse. An example might be to restrict all browsing at URLs that contain the text fragment “XXX”. An example for the email content control category is stopping and blocking all email that contains the words “proprietary” and “confidential” but not the words “joke” or “kidding”.
Firewalls, Intrusion Detection, and Intrusion Prevention Systems
A common type of message processing system is called a firewall. Firewalls and Intrusion Detection Systems monitor communications between networks and implement content filtering based on rules like source and destination address, port number, and packet contents. These rules are typically based on exact matching and pattern matching as described above. When these systems detect that an unauthorized communication is made, they can either block the communication, re-route it, or just report it.
Anti-virus Systems
Anti-virus systems search messages (typically email and HTTP messages) for malicious executable code. If a message is found to contain a fragment of executable code that matches a virus signature; then the message is either blocked, deleted, or re-routed to a quarantine server. The typical search algorithm applied to detect malicious code is searching for known fragments of the malicious code inside the suspect message via direct comparison.
Anti-spam Systems
There are a variety of systems that help block unsolicited commercial messages (commonly known as “spam”). These systems monitor incoming messages (typically email messages) and filter them using content detection algorithms that specialize in the recognition of commercial messages. Three well-known approaches exist: 1) source black-listing, 2) exact matching, and 3) statistical profiling. In source black-listing, known sources of spam are identified and then communications from those sources are ignored. In exact matching, incoming messages are compared in their entirety or in fragmentary form on a direct basis with known samples of spam and if found to have sufficient overlap; then the incoming message is rejected or quarantined. In statistical profiling, known samples of spam are profiled using statistical techniques (e.g., Bayesian analysis or word use frequency). Statistical profiles are then also taken of incoming messages as they arrive and if the profile of an incoming message matches that of a spam message; then the message is discarded, or re-directed to a quarantine server.